# 17,创建一个模块班级模块mym2，并在该模块中做以下事情：
# 创建班级1的实例，其中班级1的成绩： cj=[50,90,89,70,89,78]，其他值自定义即可）
# 创建班级2的实例，其中班级2的成绩： cj=[40,90,100,70,69,77]，其他值自定义即可）
import logging

import openpyxl as openpyxl
from openpyxl.workbook import Workbook
from openpyxl.worksheet.worksheet import Worksheet

from logs.doLog import DoLog
from mym1 import Myclass

lg = DoLog().getLogger(__name__)

class Myclass1(Myclass):
    name="一班"
    cj=[50,90,89,70,89,78]
    def doTxtWrite(self,f,m,s,isUTF=False,lg=None):
        try:
            if isUTF:
                ff=open(f, mode=m, encoding='utf-8')

            else:
                ff=open(f, mode=m)
            ff.write(s)

        except Exception as e:
            lg.log(logging.ERROR,e)
            print(f"发生了异常:{e}")
        else:
            print("无异常发生")
            print(ff.write(s))
            ff.close()
        finally:
            print("我进行异常捕获了！")
class Myclass2(Myclass):
    name="二班"
    cj=[40,90,100,70,69,77]
# 班级1，班级2 分别调用行为1
# 班级1的最高分若大于班级2的最高分，把最高分做加法，并打印结果
# 不然，做减法，并打印结果
# 班级1，班级2 分别调用行为2，并打印结果
# 班级1，班级2 分别调用行为3，是否存在100的成绩
#19 在17题的基础上，分别将班级1的内容写入到cls1.txt，cls2.txt中，然后再读取打印出来
# 要求：整个过程中若出现异常，需要捕获异常，并将异常信息打印到日志文件中，无异常需打印出：无异常发生
# 不管是否发生异常，均打印出：我进行异常捕获了!

    def doTxtWrite(self,f,m,s,isUTF=False,lg=None):
        try:
            if isUTF:
                ff=open(f, mode=m, encoding='utf-8')

            else:
                ff=open(f, mode=m)
            ff.write(s)

        except Exception as e:
            lg.log(logging.ERROR,e)
            print(f"发生了异常:{e}")
        else:
            print("无异常发生")
            print(ff.write(s))
            ff.close()
        finally:
            print("我进行异常捕获了！")
#20, 创建工作簿wExcel，在do_page的data_page下
#在writeExcel中新增一个sheet，名称wtest/
# 在wtest中，分别输入：
# mes1
# mes2
# mes3
# 你好
# helloword
# 12
# a.b.c
# hellopython
# 1751323
    def doExeWrite(self,f,lg=None):
        wk:Workbook=openpyxl.load_workbook(f)
        st:Worksheet=wk.create_sheet("wtest")
        s=[["mes1","mes2","mes3"],
            ["你好","helloword","12"],
           ["a.b.c","hellopython","1751323"]
        ]
        for i in s:
            st.append(i)
            wk.save(f)
    # def doExeRead(self,f):
    #     try:
    #         wk:Workbook=openpyxl.load_workbook(f)
    #         st:Worksheet=wk["wtest"]
    #         s=st.iter_rows(1,3,1,3,values_only=True)
    #         l=[i for i in s]
    #     except Exception as e:
    #         lg.log(logging.ERROR,e)
    #         print(f"发生了异常:{e}")
    #     else:
    #         print("无异常发生")
    #         print(l)
    #         return l
    #     finally:
    #         print("我进行异常捕获了！")
# 读取writeExcel中的wtest的内容，并打印
# 要求：整个过程中若出现异常，需要捕获异常，并将异常信息打印到日志文件中，无异常需打印出：无异常发生
# 不管是否发生异常，均打印出：我进行异常捕获了!
if __name__ == '__main__':

    d=Myclass1()
    f=Myclass2()
    # a1=d.cj
    # a2=f.cj
    # print(d.max(a1))
    # print(f.max(a2))
    # b1=d.max(a1)
    # b2=f.max(a2)
    # if b1>b2:
    #     print(b1+b2)
    # else:
    #     print(b1-b2)
    # d.avg(a1)
    # f.avg(a2)
    # d.select(a1)
    # f.select(a2)
    # f1=r"D:\lius\pythonCode\homeWorkPro\do_page\cls1.txt"
    # f2=r"D:\lius\pythonCode\homeWorkPro\do_page\cls2.txt"
    # d.doTxtWrite(f1,"w",f"班级名称:{Myclass1.name}\n成绩:{Myclass1.cj}\n",True)
    # f.doTxtWrite(f2,"w",f"班级名称:{Myclass2.name}\n成绩:{Myclass2.cj}\n",True)
    f3=r"D:\lius\pythonCode\homeWorkPro\do_page\data_page\wExcel.xlsx"
    f.doExeWrite(f3)
    # f.doExeRead(f3)